
package negocio.Cliente;
import integracion.Factoria.*;
import integracion.Venta.DAOVenta;
import integracion.Cliente.*;

public class SAClienteImp implements SACliente {
	

	@Override
	public boolean crearEmpresa(TransferEmpresa t) {
		 FactoriaDAO FacTdao = FactoriaDAO.getInstancia();
		 DAOCliente daoCliente = FacTdao.newDAOClientes();
		 if(daoCliente.creable(t))
			 return daoCliente.create(t);
		 return false;
	}

	@Override
	public boolean crearCliente(TransferParticular t) {
		 FactoriaDAO FacTdao = FactoriaDAO.getInstancia();
		 DAOCliente daoCliente = FacTdao.newDAOClientes();
		 if(daoCliente.creable(t))
			 return daoCliente.create(t);
		 return false;
	}
	
	public boolean eliminarCliente(TransferCliente t)
	{
	  FactoriaDAO FactDao = FactoriaDAO.getInstancia();
	  DAOCliente daoCliente =FactDao.newDAOClientes();
	  DAOVenta daoVentas = FactDao.newDAOVenta();
	  if(daoCliente.deletable(t) && !daoVentas.containsCliente(t.getId()))
	    {
		  if(daoCliente.delete(t)) return true;
	    }
	  return false;
	}
	
	@Override
	public boolean actualizarEmpresa(TransferEmpresa t) { 		
		FactoriaDAO FactDao = FactoriaDAO.getInstancia();
		DAOCliente daoClientes = FactDao.newDAOClientes();
		if(daoClientes.updatable(t))
			return daoClientes.update(t);
		return false;
	}

	@Override
	public boolean actualizarCliente(TransferParticular t) { 		
		FactoriaDAO FactDao = FactoriaDAO.getInstancia();
		DAOCliente daoClientes = FactDao.newDAOClientes();
		if(daoClientes.updatable(t))
			return daoClientes.update(t);
		return false;
	}

	@Override
	public TransferParticular buscarParticular(int id) {		
		FactoriaDAO FactDao = FactoriaDAO.getInstancia();
		DAOCliente daoCliente = FactDao.newDAOClientes();
		if(daoCliente.searchable(id))
			{
			return daoCliente.buscarParticular(id);
			}
		return null;
	}
	
	@Override
	public TransferEmpresa buscarEmpresa(int id) {		
		FactoriaDAO FactDao = FactoriaDAO.getInstancia();
		DAOCliente daoCliente = FactDao.newDAOClientes();
		if(daoCliente.searchable(id))
			{
			return daoCliente.buscarEmpresa(id);
			}
		return null;
	}
	
}